#ifndef STRUCT_H
#define STRUCT_H

#include "EngineApi.h"
#include <d3dx9.h>

enum PRIM_TYPE
{
   POINT_LIST     = D3DPT_POINTLIST,
   LINE_LIST      = D3DPT_LINELIST,
   LINE_STRIP     = D3DPT_LINESTRIP,
   TRIANGLE_LIST  = D3DPT_TRIANGLELIST,
   TRIANGLE_STRIP = D3DPT_TRIANGLESTRIP,
   TRIANGLE_FAN   = D3DPT_TRIANGLEFAN,
};

enum MatrixMode
{
   WORLD      = D3DTS_WORLD,
   VIEW       = D3DTS_VIEW,
   PROJECTION = D3DTS_PROJECTION,
};

/*-------------------------------< Vertices >----------------------------------------------*/
#define FVF_COLORVERTEX D3DFVF_XYZ | D3DFVF_DIFFUSE

struct ENGINE_API ColorVertex
{
   float x, y, z;
   DWORD color;

   void setVertex( float x_, float y_, float z_, DWORD color_ ) 
   {
      x = x_;
      y = y_;
      z = z_;
      color = color_;
   }
};


#define FVF_TEXTUREVERTEX D3DFVF_XYZ | D3DFVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0)

struct ENGINE_API TextureVertex
{
   float x, y, z, u, v;

   void setVertex( float x_, float y_, float z_, float u_, float v_ ) 
   {
      x = x_;
      y = y_;
      z = z_;

      u = u_;
      v = v_;
   }
};

#endif//STRUCT_H